package cn.dvptech.remotecontrol.screenmirror.sender.packets;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

/**
 * 内容（音频/视频）数据包的基类。
 */
public abstract class ContentData extends Chunk {

    protected byte[] content;

    public ContentData(ChunkHeader header) {
        super(header);
    }

    public byte[] getContent() {
        return content;
    }

    public void setContent(byte[] content) {
        this.content = content;
    }

    @Override
    public void readBody(InputStream in) throws IOException {
        content = new byte[header.getPacketLength()];
        Util.readBytesUntilFull(in, content);
    }

    /**
     * 写入此数据包正文而不进行分块。
     * 对于转储音频/视频流很有用。
     *
     * 公开以便直接访问内容（音频/视频）数据。
     */
    @Override
    public void writeBody(OutputStream out) throws IOException {
        out.write(content);
    }
}
